/*
FieldEvent.h
Field Event Header file handles every possible event
Zach Agudelo, Andi Cescolini, Sam Tarin

every function is not used, but all are included for future features
Allows for all types of SDL events to be handled and given functionality
Base class for Feild
*/
#ifndef FIELDEVENT_H
#define FIELDEVENT_H

#include <SDL/SDL.h>

class FieldEvent{
   public:
   FieldEvent();
   virtual ~FieldEvent();
   virtual void OnEvent(SDL_Event* Event);//called on any user interaction filters all types of events
   virtual void OnKeyDown(SDLKey sym, SDLMod mod, Uint16 unicode);//any key pressed
   virtual void OnKeyUp(SDLKey sym, SDLMod mod, Uint16 unicode);//any key released
	
 
	//others include for completeness(Not Implemented)
	virtual void OnMouseFocus();
	virtual void OnMouseBlur();

	virtual void OnMouseMove(int mX, int mY, int relX, int relY, bool Left,bool Right,bool Middle);

	virtual void OnMouseWheel(bool Up, bool Down);

	virtual void OnLButtonDown(int mX, int mY);

	virtual void OnLButtonUp(int mX, int mY);

	virtual void OnRButtonDown(int mX, int mY);

	virtual void OnRButtonUp(int mX, int mY);

	virtual void OnMButtonDown(int mX, int mY);

	virtual void OnMButtonUp(int mX, int mY);

	virtual void OnMinimize();

	virtual void OnRestore();

	virtual void OnResize(int w,int h);

	virtual void OnExpose();

	virtual void OnExit();

	virtual void OnUser(Uint8 type, int code, void* data1, void* data2);

	virtual void OnInputFocus();

	virtual void OnInputBlur();

};

#endif

